package menu.menu;

/**
 * @author JSR
 * @version $Id: Constantes.java 60 2010-10-06 02:35:16Z batianusrey $
 */
public final class Constantes
{

    /**
     * Clase Enum que maneja las constantes de los estados del pedido.
     */
    public static enum EstadosPedido
    {

        /**
         * Posibles estados del pedido:<br>
         * 0 - SIN_ORDENAR: El estado por default cuando un item no ha sido ordenado.<br>
         * 1 - ORDENADO: Se acaba de ordenar el item<br>
         * 2 - EN_PREPARACION: El item está siendo preparado<br>
         * 3 - PREPARACION_COMPLETA: El item ya ha sido preparado<br>
         * 4 - ENTREGADO: El item ha sido entregado a la mesa
         */
        SIN_ORDENAR, ORDENADO, EN_PREPARACION, PREPARACION_COMPLETA, ENTREGADO;

        /**
         * Retorna el valor del enum en la interfaz, cómo se va a desplegar.
         * @return valorEnInterfaz
         */
        public final String darValorInterfaz()
        {
            String resp = ""; // Temporal, ha de cambiar en el switch
            switch( this ) {
                case SIN_ORDENAR:
                    resp = "Sin ordenar";
                    break;
                case ORDENADO:
                    resp = "Ordenado";
                    break;
                case EN_PREPARACION:
                    resp = "En preparación";
                    break;
                case PREPARACION_COMPLETA:
                    resp = "Preparación completa";
                    break;
                case ENTREGADO:
                    resp = "Entregado";
                    break;
            }
            return resp;
        }

        /**
         * Retorna el siguiente estado dado el estado actual
         * @return siguienteEstado
         */
        public final EstadosPedido darSiguienteEstado()
        {
            EstadosPedido nuevoEstado = this; // Temporal, ha de cambiar en el switch a no ser que esté en el último estado
            switch( this ) {
                case SIN_ORDENAR:
                    nuevoEstado = ORDENADO;
                    break;
                case ORDENADO:
                    nuevoEstado = EN_PREPARACION;
                    break;
                case EN_PREPARACION:
                    nuevoEstado = PREPARACION_COMPLETA;
                    break;
                case PREPARACION_COMPLETA:
                    nuevoEstado = ENTREGADO;
                    break;
                case ENTREGADO:
                    break; // No hace nada
            }
            return nuevoEstado;
        }
    }

    /**
     * Clase enum que maneja los tipos de pago.
     */
    public static enum TipoPago
    {

        /**
         * Tipos de pago:<br>
         * 0 - Efectivo<br>
         * 1 - Tarjeta de crédito<br>
         * 2 - Tarjeta débito<br>
         * 3 - Cheque<br>
         * 4 - Bono Sodexho<br>
         */
        EFECTIVO, TARJETA_DE_CREDITO, TARJETA_DEBITO, CHEQUE, BONO_SODEXHO;

        /**
         * Retorna el valor del enum en la interfaz, cómo se va a desplegar.
         * @return valorEnInterfaz
         */
        public final String darValorInterfaz()
        {
            String resp = ""; // Temporal, ha de cambiar en el switch
            switch( this ) {
                case EFECTIVO:
                    resp = "Efectivo";
                    break;
                case TARJETA_DE_CREDITO:
                    resp = "Tarjeta de crédito";
                    break;
                case TARJETA_DEBITO:
                    resp = "Tarjeta débito";
                    break;
                case CHEQUE:
                    resp = "Cheque";
                    break;
                case BONO_SODEXHO:
                    resp = "Bono Sodexho";
                    break;
            }
            return resp;
        }
    }

    /**
     * Clase enum que maneja los tipos de item que hay
     */
    public static enum TiposItem
    {

        /**
         * Tipos de plato que hay, si comienza por P es de plato y si comienza por B es de bebida:<br>
         * 0 - Entrada.<br>
         * 1 - Plato fuerte.<br>
         * 2 - Postre.<br>
         * 3 - Alcohólica.<br>
         * 4 - No Alcohólica.
         */
        P_ENTRADA, P_PLATO_FUERTE, P_POSTRE, B_ALCOHOLICA, B_NO_ALCOHOLICA;

        /**
         * Retorna el valor del enum en la interfaz, cómo se va a desplegar.
         * @return valorEnInterfaz
         */
        public final String darValorInterfaz()
        {
            String resp = ""; // Temporal, ha de cambiar en el switch
            switch( this ) {
                case P_ENTRADA:
                    resp = "Entrada";
                    break;
                case P_PLATO_FUERTE:
                    resp = "Plato fuerte";
                    break;
                case P_POSTRE:
                    resp = "Postre";
                    break;
                case B_ALCOHOLICA:
                    resp = "Alcohólica";
                    break;
                case B_NO_ALCOHOLICA:
                    resp = "No alcohólica";
                    break;
            }
            return resp;
        }
    }
}
